home *** CD-ROM | disk | FTP | other *** search
/ Cracking 2 / Cracking II..iso / Texty / crackme / CRACK.ASM < prev    next >
Encoding:
Assembly Source File  |  1998-05-21  |  3.7 KB  |  184 lines

  1. .DATA
  2. ;---───────════════════════════════════════════════════════════════───────----
  3. ERROR_TXT db "iNcORRECT fILE! :-P",0
  4. GOOD_TXT  db "    cORRECT  !! :-)",0
  5.  
  6. Fname   db "CrkMe4.Dat",0
  7. hFile   dd 0
  8.  
  9. SBuff   dd 0
  10.  
  11. Table1  db 16 dup (0)
  12. Table2  db 20 dup (0)
  13. UName   db 12 dup (0)
  14.  
  15. X  db 0
  16. Y  db 0
  17. Z  db 0
  18. T  db 0
  19.  
  20. V1 db 0
  21. V2 db 0
  22. V3 db 0
  23.  
  24. .CODE
  25. ;---───────════════════════════════════════════════════════════════───────----
  26. Crack_proc      PROC
  27.         USES ebx,ecx,edx,esi,edi,ebp        ;  Don't forget this 
  28.  
  29.         Call CreateFileA , OFFSET Fname , 0C0000000h ,3,0,3,80h,0
  30.         cmp eax , INVALID_HANDLE_VALUE
  31.         jz Error
  32.         mov hFile , eax
  33.  
  34.  
  35.         Call ReadFile , hFile , OFFSET Table1 , 48 , OFFSET SBuff , NULL
  36.         Call CloseHandle , hFile
  37.         Cmp dword ptr SBuff , 48
  38.         Mov eax , 0
  39.         Jb Exit
  40.  
  41.         mov al , byte ptr [Table1+32]
  42.         mov byte ptr V3 , al
  43.  
  44.         Mov esi , OFFSET Table1
  45.         Call DeCode , esi, esi, 4
  46.  
  47.         Mov edi , OFFSET Table1
  48.         Add edi , 12
  49.         xor al , al
  50.         Mov ecx , 4
  51.         rep stosb
  52.  
  53.         Mov esi , OFFSET Table2
  54.         Call DeCode , esi, esi, 5
  55.  
  56.         Call Check_It
  57.  
  58. Exit:
  59.         Cmp eax , 0
  60.         Jz Error
  61.  
  62.  
  63. Correct:
  64.         Cmp byte ptr Table2 , 0
  65.         Jz Error
  66.         Call    SendMessage , IDC_EDIT1, WM_SETTEXT, 0 , OFFSET GOOD_TXT
  67.         Call    SendMessage , IDC_EDIT2, WM_SETTEXT, 0 , OFFSET Table2
  68.         RET
  69.  
  70.  
  71. Error:
  72.         Call    SendMessage , IDC_EDIT1, WM_SETTEXT, 0 , OFFSET ERROR_TXT
  73.         Call    SendMessage , IDC_EDIT2, WM_SETTEXT, 0 , OFFSET ERROR_TXT
  74.         RET
  75.  
  76. Crack_proc      ENDP
  77.  
  78. ;---───────════════════════════════════════════════════════════════───────----
  79.  
  80. DeCode          PROC   D_from:DWORD, D_to:DWORD, Count:Byte
  81.         Mov esi , dword ptr D_from
  82.         Mov edi , dword ptr D_to
  83.  
  84. @J1:    Mov  eax , dword ptr [esi]
  85.         Mov dword ptr X , eax
  86.         add esi , 4
  87.  
  88.         Mov al , byte ptr V3
  89.         Sub byte ptr X , al
  90.         Sub byte ptr Y , al
  91.         Sub byte ptr Z , al
  92.         Sub byte ptr T , al
  93.  
  94.  
  95.         Mov al , byte ptr Y
  96.         Mov bl , al
  97.         and al , 0fh
  98.         Mov byte ptr Y , al
  99.  
  100.         And bl , 0f0h
  101.         shr bl , 4
  102.  
  103.         Mov al , byte ptr Z
  104.         mov byte ptr Z , bl
  105.  
  106.         mov bl , al
  107.         and al , 3
  108.         MOv byte ptr V1 , al
  109.  
  110.         and bl , 0fch
  111.         shr bl , 2
  112.         mov byte ptr V2 , bl
  113.  
  114.          Mov al,X
  115.          Mov bl,Z
  116.          Shl al, 2
  117.          Or al,bl
  118.          Mov [edi] , al
  119.         Inc edi
  120.  
  121.          Mov al,Y
  122.          Mov bl,V2
  123.          Shl al, 4
  124.          Or al,bl
  125.          Mov [edi] , al
  126.         Inc edi
  127.  
  128.          Mov al,V1
  129.          Mov bl,T
  130.          Shl al, 6
  131.          Or al,bl
  132.          Mov [edi] , al
  133.         Inc edi
  134.         Dec byte ptr Count
  135.         Jnz @J1
  136.  
  137.         Ret
  138. DeCode          ENDP
  139. ;---───────════════════════════════════════════════════════════════───────----
  140. Check_It        PROC
  141.         Xor eax , eax
  142.         Xor ebx,ebx
  143.  
  144.         Mov esi , OFFSET Table2-8
  145.         Mov edi , OFFSET Table2
  146.  
  147.         mov ebp , dword ptr [edi+12]
  148.         and ebp , 0ffffffh
  149.         Shl ebp , 8
  150.         xor ebp , 55555555h
  151.  
  152.         Mov ecx , 3
  153.  
  154. @Loop1: STD
  155.         lodsd
  156.         Add eax , ebp
  157.         Mov ebx , dword ptr [edi]
  158.  
  159.         Mul ebx
  160.         Mov eax , edx
  161.         ClD
  162.         stosd
  163.         Loop @Loop1
  164.  
  165.         add esi , 20
  166.         add edi , 8
  167.         mov ecx,3
  168.  
  169. @Loop2:
  170.         lodsd
  171.         mov ebx , dword ptr [edi]
  172.         add edi , 4
  173.         cmp eax,ebx
  174.         jnz @End1
  175.         Loop @Loop2
  176.  
  177.         mov eax,1
  178.         ret
  179.  
  180. @End1:
  181.         xor eax,eax
  182.         rET
  183. Check_It        ENDP
  184.